package com.uls.hdh.service;

import java.util.List;
import com.uls.hdh.domain.HdhPolls;
import com.uls.hdh.vo.TaskCommentVo;

/**
 * 投票事项Service接口
 * 
 * @author hdh
 * @date 2024-11-08
 */
public interface IHdhPollsService 
{
    /**
     * 查询投票事项
     * 
     * @param pollId 投票事项主键
     * @return 投票事项
     */
    public HdhPolls selectHdhPollsByPollId(Long pollId);

    /**
     * 查询投票事项列表
     * 
     * @param hdhPolls 投票事项
     * @return 投票事项集合
     */
    public List<HdhPolls> selectHdhPollsList(HdhPolls hdhPolls);

    /**
     * 新增投票事项
     * 
     * @param hdhPolls 投票事项
     * @return 结果
     */
    public int insertHdhPolls(HdhPolls hdhPolls);

    /**
     * 修改投票事项
     * 
     * @param hdhPolls 投票事项
     * @return 结果
     */
    public int updateHdhPolls(HdhPolls hdhPolls);

    /**
     * 批量删除投票事项
     * 
     * @param pollIds 需要删除的投票事项主键集合
     * @return 结果
     */
    public int deleteHdhPollsByPollIds(Long[] pollIds);

    /**
     * 删除投票事项信息
     * 
     * @param pollId 投票事项主键
     * @return 结果
     */
    public int deleteHdhPollsByPollId(Long pollId);



    /**
     * 启动流程
     * @param pollId
     * @param userId
     */
    int submit(Long pollId, Long userId);

    /**
     * 未完成的任务所对应的学生数据
     * @param userId
     * @return
     */
    List<HdhPolls> noFinishTask(Long userId,String processDefiniionKey);
    /**
     * 未完成的任务所对应的数据和各种条件查询
     * @param userId
     * @return
     */
    List<HdhPolls> noFinishTask(Long userId,String processDefiniionKey,HdhPolls hdhPolls);

    /**
     * 完成任务
     * @param flowInstantId
     */
    void completeTask(Long flowInstantId,Integer agree,Long userId,String comment,Long pollId);



    /**
     * 根据流程id获取历史审批数据（task，comment）
     * @param flowInstantId
     * @return
     */
    List<TaskCommentVo> getTaskCommentList(Long flowInstantId);

    /**
     *查询完成的任务，任务所对应的学生数据
     * @param userId
     * @return
     */
    List<HdhPolls> finishTask(Long userId,String processDefiniionKey);

    List<HdhPolls> finishTask(Long userId,String processDefiniionKey,HdhPolls hdhPollsQuery);



}
